package wellness.activities;

import wellness.activities.beans.AtividadeBean;
import wellness.activities.beans.LoadBeans;
import wellness.activities.data.AtividadeData;
import wellness.activities.util.Dialogs;
import android.R.style;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.CheckBox;
import android.widget.FrameLayout;
import android.widget.FrameLayout.LayoutParams;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class Activities extends Activity {
	private Context context;
	private View atividade;

	@Override
	protected void onRestart() {
		popularAtividades();
		super.onRestart();
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activities);
		context = this;

		popularAtividades();

		ImageView goBack = (ImageView) findViewById(R.id.imageViewGoBack);
		goBack.setOnClickListener(new View.OnClickListener() {

			public void onClick(View view) {
				Intent intent = new Intent();
				setResult(RESULT_OK, intent);
				finish();
			}
		});

		ImageView goHome = (ImageView) findViewById(R.id.imageViewGoHome);
		goHome.setOnClickListener(new View.OnClickListener() {

			public void onClick(View view) {
				Intent intent = new Intent(Activities.this, Main.class);
				startActivity(intent);
			}
		});

		ImageView goNewActivity = (ImageView) findViewById(R.id.imageViewNewActivity);
		goNewActivity.setOnClickListener(new View.OnClickListener() {

			public void onClick(View view) {
				Intent myIntent = new Intent(view.getContext(),
						NewActivity.class);
				startActivityForResult(myIntent, 0);
			}
		});
	}

	public void popularAtividades() {
		if (LoadBeans.getAtividades() != null) {
			LinearLayout base = (LinearLayout) findViewById(R.id.linearLayoutBaseContent);
			base.removeAllViews();

			for (AtividadeBean a : LoadBeans.getAtividades()) {

				if (!a.isRemovido()) {
					FrameLayout baseAtividade = new FrameLayout(context);
					baseAtividade
							.setBackgroundResource(R.drawable.base_pequena);
					baseAtividade.setPadding(10, 10, 40, 10);

					CheckBox ck = new CheckBox(context);
					ck.setId(a.getId());
					ck.setChecked(a.isGosta());
					ck.setLayoutParams(new LayoutParams(
							LayoutParams.WRAP_CONTENT,
							LayoutParams.FILL_PARENT, Gravity.CENTER_VERTICAL
									| Gravity.LEFT));
					ck.setHeight(FrameLayout.LayoutParams.FILL_PARENT);
					ck.setOnClickListener(new View.OnClickListener() {

						public void onClick(View view) {
							gerenciarSeGosta(view);
						}

					});

					TextView atividadeNome = new TextView(context);
					atividadeNome.setText(a.getNome());
					atividadeNome.setGravity(Gravity.CENTER_VERTICAL);
					atividadeNome.setPadding(80, 0, 0, 0);
					atividadeNome.setTextColor(Color.WHITE);
					atividadeNome.setTextAppearance(this,
							style.TextAppearance_Medium);
					atividadeNome.setLayoutParams(new LayoutParams(
							LayoutParams.WRAP_CONTENT,
							LayoutParams.FILL_PARENT, Gravity.CENTER_VERTICAL));

					ImageView remove = new ImageView(context);
					remove.setBackgroundResource(R.drawable.remover);
					remove.setId(a.getId());
					remove.setLayoutParams(new LayoutParams(30, 30,
							Gravity.CENTER_VERTICAL | Gravity.RIGHT));
					remove.setOnClickListener(new View.OnClickListener() {

						public void onClick(View view) {
							removerAtividade(view);
						}

					});

					baseAtividade.addView(ck);
					baseAtividade.addView(atividadeNome);
					baseAtividade.addView(remove);

					base.addView(baseAtividade);

				}

			}
		}

	}

	public void removerAtividade(View v) {
		atividade = v;

		DialogInterface.OnClickListener sim = new DialogInterface.OnClickListener() {

			public void onClick(DialogInterface dialog, int arg1) {
				AtividadeData data = new AtividadeData(context);
				if (data.delete(atividade.getId()) > 0) {
					LoadBeans.removerAtividadePorId(atividade.getId(), context);
					FrameLayout base2 = (FrameLayout) atividade.getParent();
					LinearLayout base1 = (LinearLayout) base2.getParent();
					base1.removeView(base2);
				} else {
					Toast.makeText(context, "Falha ao remover essa atividade",
							Toast.LENGTH_SHORT);
				}
				atividade = null;
			}
		};

		Dialogs.showDialog("Aviso", "Deseja reamente remover essa atividade?",
				sim, null, context);

	}

	public void gerenciarSeGosta(View v) {
		AtividadeBean a = LoadBeans.getAtividadePorId(v.getId());
		AtividadeData data = new AtividadeData(context);
		CheckBox ck = (CheckBox) v;
		if (data.gosta(a.getId(), !a.isGosta()) > 0) {
			a.setGosta(!a.isGosta());
			ck.setChecked(a.isGosta());
		} else {
			ck.setChecked(a.isGosta());
			Toast.makeText(context, "Falha ao alterar essa atividade",
					Toast.LENGTH_SHORT);
		}

	}
}
